return {
  {
    "nvim-lua/plenary.nvim",
    config = function()
      local autocmd = vim.api.nvim_create_autocmd

      local function augroup(name)
        return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true })
      end
      local root = vim.fn.stdpath "config" .. '/lua/'
      -- reload some options on-save
      vim.api.nvim_clear_autocmds({ group = augroup('reload') })
      autocmd("BufWritePost", {
        group = augroup('reload'),
        pattern = vim.tbl_map(function(path)
          return vim.fs.normalize(vim.loop.fs_realpath(path))
        end, vim.fn.glob(root .. "**/*.lua", true, true, true)),
        -- group = vim.api.nvim_create_augroup("ReloadNext", {}),

        callback = function(opts)
          local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
          -- local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
          local module = string.gsub(fp, root, ""):gsub("/", ".")
          require("plenary.reload").reload_module(module)
          -- package.loaded['next'] = nil
          -- require('next')
          require("plenary.reload").reload_module "next"
          -- require 'next'
          vim.notify('重新加载vim配置...')
          vim.cmd("redraw!")
        end,
      })
    end
  }
}
